<?php 
class Sala_Aula extends CI_Controller
{
	private static $titulo_lista_salas = 'Salas de Aula';

	public function __construct()
	{
		parent::__construct();
		$this->load->model("Sala_Aula_Model",'',TRUE);
		$this->load->helper('url','image_lib');
	}
	public function index()
	{
		$data['title'] = 'Salas de Aula';

		$data['table'] = $this->gerar_tabela($this->Sala_Aula_Model->get(null));

		$this->carrega_view('salaaula/listasalas', $data);
	}

	public function apagar ($id){
		$this->Sala_Aula_Model->apaga($id);

		$data = array(
				'title' => Sala_Aula::$titulo_lista_salas,
				'mensagem' => 'Sala de aula apagada com sucesso!',
				'salas' => $this->Sala_Aula_Model->get(null)
		);
		
		$data['table'] = $this->gerar_tabela($this->Sala_Aula_Model->get(null));

		$this->carrega_view('salaaula/listasalas', $data);
	}

	public function view($id)
	{
		$data['sala'] = $this->Sala_Aula_Model->get($id);
	}

	public function criar()
	{
		$this->load->helper('form');
		$this->load->library('form_validation');

		$data['title'] = 'Nova sala de aula';

		$this->form_validation->set_rules(
				'nome',
				'Nome',
				'required|min_length[3]'
		);

		$this->form_validation->set_rules(
				'computnum',
				'Número de computadores',
				'required|greater_than[0]|less_than[100]'
		);

		$this->form_validation->set_rules(
				'local',
				'Local',
				'required|min_length[3]'
		);

		$this->form_validation->set_rules(
				'capacidade',
				'Computador',
				'required|greater_than[0]|less_than[100]'
		);

		if ($this->form_validation->run() === FALSE)
		{

			$this->carrega_view('salaaula/criar', $data);

		}
		else
		{
				
			$this->Sala_Aula_Model->define_sala();
				
			$data = array(
					'title' => Sala_Aula::$titulo_lista_salas,
					'mensagem' => 'Sala de aula criada com sucesso!',
			);
			$data['table'] = $this->gerar_tabela($this->Sala_Aula_Model->get(null));
			$this->carrega_view('salaaula/listasalas', $data);
		}
	}
	
	function editar($id)
	{
		$data['title'] = 'Atualizar sala de aula';
		$data['registro'] = $this->Sala_Aula_Model->get($id);
	
		$this->carrega_view('salaaula/criar', $data);
	}
	
	public function atualizar()
	{
		$this->load->helper('form');
		$this->load->library('form_validation');
	
		$data['title'] = 'Atualizar sala de aula';
	
		$this->form_validation->set_rules(
				'nome',
				'Nome',
				'required|min_length[3]'
		);
	
		$this->form_validation->set_rules(
				'computnum',
				'Número de computadores',
				'required|greater_than[0]|less_than[100]'
		);
	
		$this->form_validation->set_rules(
				'local',
				'Local',
				'required|min_length[3]'
		);
	
		$this->form_validation->set_rules(
				'capacidade',
				'Computador',
				'required|greater_than[0]|less_than[100]'
		);
	
		if ($this->form_validation->run() === FALSE)
		{
	
			$this->carrega_view('salaaula/criar', $data);
	
		}
		else
		{
	
			$this->Sala_Aula_Model->update_sala();
	
			$data = array(
					'title' => Sala_Aula::$titulo_lista_salas,
					'mensagem' => 'Sala de aula atualizada com sucesso!',
			);
			$data['table'] = $this->gerar_tabela($this->Sala_Aula_Model->get(null));
			$this->carrega_view('salaaula/listasalas', $data);
		}
	}

	private function gerar_tabela($salas){
		
		$this->load->library('table');
		$this->table->set_empty("&nbsp;");
		$this->table->set_heading('ID', 'Nome', 'Disponível?', 'Nro Computadores' , 'Projetor', 'Local','Capacidade', 'Ações');
		foreach ($salas as $sala){
			$this->table->add_row($sala["id"], $sala["nome"], (($sala["pronta_uso"] ? "Sim" : "Não")), $sala["computadores"],
					($sala["projetor"] ? "Sim" : "Não"),$sala["localizacao"], $sala["capacidade"],
					anchor('sala_aula/editar/'.$sala["id"],'Atualizar',array('class'=>'update')).' '.
					anchor('sala_aula/apagar/'.$sala["id"],'Remover',array('class'=>'delete','onclick'=>"return confirm('Tem cerrteza que deseja remover essa Sala ?')"))
			);
		
		
		}
		return ($this->table->generate());
	}
	/**
	 * Carrega a view com o cabeçalho e o rodapé.
	 *
	 * @param unknown_type $caminho_view Caminho da view.
	 * @param unknown_type $dados Array com os dados para a view.
	 */
	private function carrega_view($caminho_view, $dados){

		$this->load->view('templates/cabecalho', $dados);
		$this->load->view($caminho_view, $dados);
		$this->load->view('templates/rodape');
	}
}
?>